//收集依赖的dep类
var uid =0;
export default class Dep{
	constructor(){
		console.log('在Dep类中的构造器触发了');
		this.uid = uid++;
		// 用数组存储自己的订阅者，subs是subscribes订阅者的意思，
		// 数组里放的就是watcher的实例
		this.subs=[];

	}
	// 添加订阅（依赖）
	addSubs(watcher){
		this.subs.push(watcher);
	}
	//添加依赖
	depend(){ 
		// Dep.target就是我们自己指定的一个全局的位置，用window.target也是可以的，只要全局唯一，没有歧义就可以
		if(Dep.target){
			this.addSubs(Dep.target);
		};
		// console.log('depend收集到的依赖是：',this.subs)
	}
	// 通知更新
	notify(){
		console.log('我是notify');
		//浅克隆一份
		const subs = this.subs.slice();
		// 遍历
		for(let i=0,l=subs.length;i<l;i++){
			subs[i].update();
		}
	}
}